// Copyright (c) 2013 Hua Fan.
// Author: Hua Fan (hua.fan@uwaterloo.ca)
// Description:
// This is a base class for multi producer single comsumer(mpsc)
// queue definition for cs854 course project.
// mpsc queue is a shared data structure in multi core operating system
// environment.
// This file defines the interface of mpsc queue. The following implementation
// should derive from this class.

#ifndef COURSE_PROJECT_CS854FALL2013_QUEUE_BASE_H_
#define COURSE_PROJECT_CS854FALL2013_QUEUE_BASE_H_

namespace cs854{
namespace mpsc_queue{

class Element;

clas Queue {
 public:
  // return success:true or fail:false
  bool Enqueue(Element *elem);
  bool Dequeue(Element *elem);

  bool Empty();
  bool Full();
  int Size();

};

}
}

#endif  // COURSE_PROJECT_CS854FALL2013_QUEUE_BASE_H_

